Skip to main content

modal

Type

command

Summary

Opens a stack as a modal dialog box.

Syntax

modal <stack>

Description

Use the modal command to display a stack as a custom modal dialog box.

Important

When a stack is opened as modal its location is set to the center of the defaultStack if the defaultStack is open and visible. If not then its location is set to the center of the topStack if there is one and it is visible. If not then the stack's own location and rectangle properties are used to place the window. To override this behavior set the location of the stack in its preOpenStack handler.

While a modal dialog box is open, other windows cannot be edited or brought to the front. Because of this, you should use modal dialog boxes only when a stack must obtain feedback from the user before it can continue. This can be problematic if no means of dismissing the stack is provided. To remedy this situation select "stack mode" -> "Toplevel" from the stack's context menu. The context menu can be accessed by using, Shift-Control-Right--Click on Windows or Shift-Command-Right-Click/Command-Control-Shift-Click on Mac.

If the stack is already open, the modal command closes the stack and reopens it as a modal dialog box, so closeStack and openStack, closeCard and openCard, and (if applicable) closeBackground and openBackground messages are sent to the current card as a result of executing this command. Use the lock messages command before executing modal if you want to prevent the close messages from being sent; the open messages are sent regardless of the setting of the lockMessages property.

If the stack is already displayed as a modal dialog box, the modal command does not close and reopen it.

The modal command pauses the running handler until the modal dialog box is dismissed (usually by clicking a button in the modal dialog box). To return information to the handler about which button was clicked, in the button's script, set a global variable or custom property. After the dialog box is dismissed, the handler can query this variable or property and act accordingly.

Modal dialog boxes cannot be resized or edited. To edit a modal dialog box, use the topLevel command to display it in an editable window. The Browse tool is used in modal dialog boxes, regardless of the current setting of the tool property.

Parameters

NameTypeDescription

stack

Any stack reference.

Examples

modal stack "Custom Answer Dialog"
modal stack x of stacksToPresent

glossary: variable, editable window, property, dialog box, execute, modal dialog box, command, global, Browse tool, custom property, message, current card, handler

keyword: button

message: openCard, closeStack, closeCard, closeBackground, openStack, openBackground, preOpenStack

object: stack, button

property: location, rectangle, defaultStack, script, properties, lockMessages, visible

command: lock messages, ask, ask file with type, modeless

constant: return

function: tool, topStack

Compatibility and Support

Introduced

LiveCode 1.0

OS

mac

windows

linux

Platforms

desktop

server

Thank you for your feedback!

Was this page helpful?